package com.aoip.telemetry.telemetry.configureui.business.computemodel.service;

import com.aoip.telemetry.telemetry.entity.quality.ComputeModelEntity;

import java.util.List;

/**
 * @author chenbai
 * @version 1.0
 * @date 2022/5/1 16:54
 */
public interface ComputeModelService {

    /**
     * 计算模型列表
     *
     * @param entity 计算模型实体
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.quality.ComputeModelEntity>
     * @author chenbai
     * @date 2022/4/29
     **/
    List<ComputeModelEntity> list(ComputeModelEntity entity);

    /**
     * 根据id查询单条计算模型
     *
     * @param id 主键id
     * @return com.aoip.telemetry.telemetry.entity.quality.ComputeModelEntity
     * @author chenbai
     * @date 2022/4/29
     **/
    ComputeModelEntity detail(String id);

    /**
     * 根据计算模型主键查询关联测站信息@author chenbai
     *
     * @param modelId 计算模型主键
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.quality.RelComputeModelStEntity>
     * @date 2022/5/2
     **/
    List<String> getRelModelStListByModelId(String modelId);

    /**
     * 计算模型新增
     *
     * @param entity 计算模型实体
     * @return int
     * @author chenbai
     * @date 2022/4/29
     **/
    int insert(ComputeModelEntity entity);

    int insertRelModelSt(List<String> stCodes, String modelId);

    int enableStatusChange(ComputeModelEntity entity);
    /**
     * 计算模型修改
     *
     * @param entity 处理器规则实体
     * @return int
     * @author chenbai
     * @date 2022/4/29
     **/
    int update(ComputeModelEntity entity);

    /**
     * 初始化数据到redis缓存库
     *
     * @return int
     * @author chenbai
     * @date 2022/4/29
     **/
    int initCache();

    /**
     * 计算模型删除
     *
     * @param ids 处理器规则主键集合
     * @author chenbai
     * @date 2022/4/29
     **/
    void delete(long[] ids);
}
